package com.lmt.service;

import com.lmt.base.ResultData;
import com.lmt.entity.Collection;
import com.lmt.entity.search.CollectionSearch;

import java.util.List;

/**
 * Date 2018/07/17
 *
 * @author MT-Lin
 */
public interface CollectionService {

	/**
	 * 收藏资源
	 * @param collection 收藏数据
	 * @return ResultData
	 */
	ResultData save(Collection collection);

	/**
	 * 获取用收藏的资源数量
	 * @param userId
	 *            用户ID
	 * @return int
	 */
	int getCollectNum(String userId);

	/**
	 * 取消收藏
	 * @param collection 收藏信息
	 * @return ResultData
	 */
	ResultData delete(Collection collection);

	/**
	 * 搜索个人收藏
	 * @param collectionSearch 搜索条件
	 * @return ResultData
	 */
	ResultData search(CollectionSearch collectionSearch);

	/**
	 * 更新个人收藏
	 * @param collection 更新的收藏信息
	 * @return ResultData
	 */
	ResultData update(Collection collection);

	/**
	 * 批量取消收藏资源
	 * @param collections 取消收藏的数据
	 * @return ResultData
	 */
	ResultData delete(List<Collection> collections);

	/**
	 * 获取用户收藏的资源ID
	 * @param userId 用户ID
	 * @param resourceIdList 资源ID集合
	 * @return List
	 */
	List getCollected(String userId, List<String> resourceIdList);

	/**
	 * 查询是否收藏过该资源
	 * @param collectionSearch 查询条件
	 * @return ResultData
	 */
    ResultData isCollected(CollectionSearch collectionSearch);
}
